#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
#include <iostream>
using namespace std;

// void handler(int sigon)
// {
//     cout << "收到信号：" << sigon << endl;
//     int re = waitpid(0, NULL, WNOHANG); // 进行非阻塞等待
//     cout << "完成等待" << endl;
// }

int main()
{
    pid_t pid = fork();
    if (pid == 0)
    {
        // 子进程
        cout << "子进程退出！\n";
        exit(1);
    }

    // 父进程
    signal(SIGCHLD, SIG_IGN);
    while (true)
    {
        // 即使有多个子进程也可以全部等待（非阻塞等待）
        sleep(2);
        cout << "父进程running\n";
    }
}